Перем ЮнитТест;

#Область ОбработчикиСобытийМодуля

Функция ПолучитьСписокТестов(МенеджерТестирования) Экспорт
	
	ЮнитТест = МенеджерТестирования;

	СписокТестов = Новый Массив;
	СписокТестов.Добавить("ТестКонструктор");
	СписокТестов.Добавить("TestConstructor");
	СписокТестов.Добавить("ТестИмя");
	СписокТестов.Добавить("ТестСсылка");
	СписокТестов.Добавить("ТестДобавитьАтрибут");
	СписокТестов.Добавить("ТестДобавитьГруппуАтрибутов");
	СписокТестов.Добавить("ТестМаска");
	
	Возврат СписокТестов;

КонецФункции

#КонецОбласти

#Область ОбработчикиТестирования

Процедура ТестКонструктор() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;
	
	ЮнитТест.ПроверитьРавенство(ТипЗнч(ГруппаАтрибутов), Тип("ОпределениеГруппыАтрибутовXS"));
	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.ТипКомпоненты, ТипКомпонентыXS.ОпределениеГруппыАтрибутов);
	ЮнитТест.ПроверитьРавенство(ТипЗнч(ГруппаАтрибутов.Компоненты), Тип("ФиксированныйСписокКомпонентXS"));
	ЮнитТест.ПроверитьРавенство(ТипЗнч(ГруппаАтрибутов.Содержимое), Тип("СписокКомпонентXS"));
	ЮнитТест.ПроверитьЛожь(ГруппаАтрибутов.ЭтоСсылка);

КонецПроцедуры 

Procedure TestConstructor() Export

	AttributeGroup = New XSAttributeGroupDefinition;

	ЮнитТест.ПроверитьРавенство(TypeOf(AttributeGroup), Type("XSAttributeGroupDefinition"));
	ЮнитТест.ПроверитьРавенство(AttributeGroup.ComponentType, XSComponentType.AttributeGroupDefinition);

EndProcedure

Процедура ТестИмя() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;
	ГруппаАтрибутов.Имя = "test";
	
	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.Имя, "test");

КонецПроцедуры

Процедура ТестСсылка() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;
	ИмяТипа = Новый РасширенноеИмяXML("http://www.w3.org/2001/XMLSchema", "string");
	
	ГруппаАтрибутов.Ссылка = ИмяТипа;
	
	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.Ссылка, ИмяТипа);
	ЮнитТест.ПроверитьИстину(ГруппаАтрибутов.ЭтоСсылка);

КонецПроцедуры

Процедура ТестДобавитьАтрибут() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;

	Атрибут = Новый ОбъявлениеАтрибутаXS;
	ГруппаАтрибутов.Содержимое.Добавить(Атрибут);

	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.Содержимое.Количество(), 1);
	ЮнитТест.ПроверитьИстину(ГруппаАтрибутов.Содержит(Атрибут));
	ЮнитТест.ПроверитьРавенство(Атрибут.Контейнер, ГруппаАтрибутов);

КонецПроцедуры

Процедура ТестДобавитьГруппуАтрибутов() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;

	АтрибутСсылка = Новый ОпределениеГруппыАтрибутовXS;
	АтрибутСсылка.Ссылка = Новый РасширенноеИмяXML("http://www.w3.org/2001/XMLSchema", "string");
	ГруппаАтрибутов.Содержимое.Добавить(АтрибутСсылка);

	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.Содержимое.Количество(), 1);
	ЮнитТест.ПроверитьИстину(ГруппаАтрибутов.Содержит(АтрибутСсылка));
	ЮнитТест.ПроверитьРавенство(АтрибутСсылка.Контейнер, ГруппаАтрибутов);

КонецПроцедуры

Процедура ТестМаска() Экспорт

	ГруппаАтрибутов = Новый ОпределениеГруппыАтрибутовXS;

	ЛюбойАтрибут = Новый МаскаXS;
	ЛюбойАтрибут.ЛексическоеЗначениеОграниченияПространствИмен	= "##targetNamespace";
	ГруппаАтрибутов.Маска = ЛюбойАтрибут;

	ЮнитТест.ПроверитьРавенство(ГруппаАтрибутов.Маска, ЛюбойАтрибут);
	ЮнитТест.ПроверитьРавенство(ЛюбойАтрибут.Контейнер, ГруппаАтрибутов);

КонецПроцедуры

#КонецОбласти